﻿using Mes.Domain.BoundedContext;

namespace Mes.Application.DTO.Inputs.Operations
{
    /// <summary>
    /// 新增工艺入参
    /// </summary>
    public class ProcessInput
    {
        /// <summary>
        /// 工艺编码
        /// </summary>
        public string Process_Id { get; set; } = string.Empty;

        /// <summary>
        /// 描述
        /// </summary>
        public string? Spare1 { get; set; } = string.Empty;

        /// <summary>
        /// 版本 
        /// </summary>
        public string? Process_Ver_Id { get; set; } = string.Empty;

        /// <summary>
        /// 物料ID列表
        /// </summary>
        public IList<int> MaterialIds { get; set; } = new List<int>();

        /// <summary>
        /// 备用
        /// </summary>
        public string? Notes { get; set; } = string.Empty;
    }

    public class AddingProcessInput : ProcessInput
    {
        /// <summary>
        /// 工艺名称
        /// </summary>
        public string Process_Desc { get; set; } = string.Empty;

        /// <summary>
        /// 工艺路线ID
        /// </summary>
        public int Process_Route_Id { get; set; }
    }

    /// <summary>
    /// 编辑工艺入参
    /// </summary>
    public class UpdatingProcessInput: ProcessInput
    {
    }

    /// <summary>
    /// 更新工艺状态入参
    /// </summary>
    public class UpdatingProcessStatusInput 
    {
        /// <summary>
        /// 工艺编码
        /// </summary>
        public string Process_Id { get; set; } = string.Empty;

        /// <summary>
        /// 工艺状态
        /// 1-启用 0-不启用
        /// </summary>
        public int Process_Status { get; set; }
    }

    /// <summary>
    /// 分页查询工艺入参
    /// </summary>
    public class QueryingProcessesInput
    {
        /// <summary>
        /// 查询关键字
        /// </summary>
        public string? KeyWord { get; set; }

        /// <summary>
        /// 分页参数
        /// </summary>
        public PagedInput PagedInput { get; set; } = new PagedInput();
    }

    /// <summary>
    /// 移动工序顺序入参
    /// </summary>
    public class MovingOperSequenceInput
    {
        /// <summary>
        /// 工艺编码
        /// </summary>
        public string Process_Id { get; set; } = string.Empty;

        /// <summary>
        /// 源工序ID
        /// </summary>
        public string FromOper_Id { get; set; } = string.Empty;

        /// <summary>
        /// 目标工序ID
        /// </summary>
        public string ToOper_Id { get; set; } = string.Empty;
    }


    /// <summary>
    /// 通过工艺路线添加工序入参
    /// </summary>
    public class AddProcessOpersInput
    {
        /// <summary>
        /// 工艺编码
        /// </summary>
        public string Process_Id { get; set; } = string.Empty;

        
        /// <summary>
        /// 工艺路线ID
        /// </summary>
        public int Process_Route_Id { get; set; }
    }
}
